The present disclosure relates in general to networking, and in particular to techniques for estimating the performance of network devices.
Network devices, such as switches, routers, and the like, typically provide a variety of features that can be configured by users to control the functionality and operation of the devices. For example, with respect to a Layer 2 switch, such features can include VLAN setup, port security (e.g., MAC filtering, etc.), and so on. With respect to a Layer 4 through 7 switch (also known as an application delivery switch or controller), such features can include Layer 4 through 7 redirection, server load balancing, network address translation, and so on.
In some cases, the configurability of these features is limited to a set of predefined rules or policies that are built into the device software and/or hardware. In other cases, this configurability can be more flexible and open-ended. For example, certain types of application delivery switches (such as the ServerIron ADX line of switches developed by Brocade Communications Systems, Inc.) implement a scripting engine that is capable of manipulating data traffic in real-time based on user-defined scripts. With such scripting functionality, users can flexibly define and implement whatever business logic they need to control application delivery, without being restricted to the specific configuration options and rule sets implemented by the switch vendor.
Unfortunately, device configurability generally comes at the cost of performance and scalability. This is particularly true for very flexible and customizable mechanisms, such as the scripting functionality noted above. For instance, an application delivery switch that executes a user-defined script can, depending on the script's complexity, potentially experience a very severe degradation in performance due to script execution overhead. This can pose significant issues in mission-critical network environments.